Beyond PaaS

Going beyond PaaS.

As we have just seen, there is a long list of hosting platforms that you can use and leverage to deploy your application. This list of cloud platforms is not exhaustive. There are a lot more of them out there. They all have different offerings, while the foundation is usually common: running Python code.

List of hosting platforms
Hosting platform tradeoffs

Many of those platforms include more than just running your Python code: database access, message queues, and object storage. These might be necessary building blocks of your application. Most of those services are scalable by design, and the performance of those components is the responsibility of the provider, which is both an advantage and a disadvantage; it is up to you to decide. However, studying those services, what they provide and how they do it, can teach you a thing or two about scalability and the trade-offs you might have to choose.

Very few of those extra services are standardized, which means that your application, which is based on an open source language, might be subject to vendor lock-in. Migrating your Python application from one platform to another could therefore be a daunting task or even impossible: the APIs are different, the services are disparate, etc. In cases of prolonged service outages or a change of policy, being tied to one particular provider is rarely pleasant. This can be mitigated by using a platform that provides an open API that you could run on your own, such as OpenShift.

Migration from a platform to another
Python apps are non-resilient

While Python hosting platforms are usually highly scalable and fault-tolerant, they are not resilient. They can crash or fail, suffer server downtime or have network issues. Your application should be prepared for this eventuality wherever it runs. Using multiple distribution sites if available or multiple providers might be a solution to think about, depending on the level of service that you need to provide!

OpenShift

Quiz: Deploying on PaaS